Add Exie AI assistant - #2430
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: be0b03b29c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d8f9ec4b33
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fadb9a1993
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2d6f0fb55a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
niemyjski
left a comment
There was a problem hiding this comment.
Looks good and sweet feature, left some comments mostly on magic strings.
Also, what do we want to do for /docs/ and or running locally, would it detect ollama automatically?
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b083c501cd
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c993cd38c2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cd4d2054cf
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0c367aa420
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@niemyjski Regarding |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 825fe1e5aa
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| _cache.IncrementAsync(GetUsageKey(organizationId, month.Id, "reserved-prompt-tokens"), promptTokens, month.ResetAtUtc.UtcDateTime), | ||
| _cache.IncrementAsync(GetUsageKey(organizationId, month.Id, "reserved-completion-tokens"), completionTokens, month.ResetAtUtc.UtcDateTime), | ||
| _cache.IncrementAsync(GetUsageKey(organizationId, month.Id, "reserved-cost-microdollars"), costInMicrodollars, month.ResetAtUtc.UtcDateTime)); |
There was a problem hiding this comment.
Persist unreconciled provider reservations
When a provider stream is cancelled or ends without a usage frame, these conservative token and cost reservations remain only in Redis; the durable increment at request start records only ProviderRequests, and the cancellation path never transfers the reservation into durable usage. Fresh evidence after the earlier cancellation and rehydration fixes is that a Redis restart then seeds actual counters from the organization record while explicitly resetting all reserved counters to zero, so provider spend from those requests disappears from monthly enforcement and organizations receive that allowance again. Persist the conservative charge when it cannot be reconciled, or otherwise include outstanding reservations in durable rehydration.
Useful? React with 👍 / 👎.
| return toolName switch | ||
| { | ||
| UpdateStackStatusTool => HasExplicitStackStatusRequest(latestUserMessage, root), | ||
| SnoozeStackTool => ContainsAny(latestUserMessage, "snooze"), |
There was a problem hiding this comment.
Match the requested snooze duration before allowing the write
When the user explicitly asks to snooze a stack for a bounded period, this guard checks only that the message contains the word snooze; it does not compare the requested duration or UTC deadline with the tool arguments. Fresh evidence after the earlier exact-approval concern is that “snooze this stack for one hour” therefore authorizes a provider call that snoozes it for a week or until any other supplied time, potentially suppressing notifications far longer than approved. Require the tool's duration or snoozeUntilUtc to match the user's requested mutation.
Useful? React with 👍 / 👎.
| .Produces(StatusCodes.Status403Forbidden) | ||
| .ProducesProblem(StatusCodes.Status426UpgradeRequired) | ||
| .ProducesProblem(StatusCodes.Status429TooManyRequests); |
There was a problem hiding this comment.
Publish the chat endpoint's configuration failures
When Exie is disabled or enabled without an API key, MapAccessFailure returns 404 or 503 before streaming, but the chat endpoint metadata and regenerated OpenAPI snapshot expose neither response. Fresh evidence after the endpoint was added to OpenAPI is that the final snapshot still lists only 200/400/401/403/426/429, so generated clients receive undocumented statuses in these normal deployment configurations. Add the 404 and 503 response contracts and regenerate the snapshot.
AGENTS.md reference: AGENTS.md:L68-L68
Useful? React with 👍 / 👎.
What changed
Why
Exceptionless users should be able to investigate errors, stacks, and events conversationally without leaving their current workflow. The first production version also needs predictable provider spend, plan-based access, web-farm correctness, operational visibility, and a complete off switch for self-hosted installations.
Plan limits
Free and Small plans receive the upgrade experience. Annual plans use the corresponding monthly allowance.
Operational impact
GET /api/v2/admin/assistant-usagepowers the global-admin monthly totals, per-organization consumption, plan utilization, and blocked-attempt reporting in System → Exie.Validation
npm run validate— formatting, ESLint, andsvelte-checkpassed with 0 errors and 0 warnings.dotnet build ./Exceptionless.slnx --no-restore --configuration Release— passed with 0 warnings and 0 errors.git diff --checkpassed.